#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QPushButton>

namespace Ui {
class MainWindow;
}



class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    explicit MainWindow(QWidget *parent = 0);
    ~MainWindow();

public slots:
#define BTN_CLICKED_FUNC_DECLARE(index) void bit##index##_clicked(bool);

    void bit31_clicked(bool);
    void bit30_clicked(bool);
    void bit29_clicked(bool);
    void bit28_clicked(bool);
    void bit27_clicked(bool);
    void bit26_clicked(bool);
    void bit25_clicked(bool);
    void bit24_clicked(bool);
    void bit23_clicked(bool);
    void bit22_clicked(bool);
    void bit21_clicked(bool);
    void bit20_clicked(bool);
    void bit19_clicked(bool);
    void bit18_clicked(bool);
    void bit17_clicked(bool);
    void bit16_clicked(bool);
    void bit15_clicked(bool);
    void bit14_clicked(bool);
    void bit13_clicked(bool);
    void bit12_clicked(bool);
    void bit11_clicked(bool);
    void bit10_clicked(bool);
    void bit9_clicked(bool);
    void bit8_clicked(bool);
    void bit7_clicked(bool);
    void bit6_clicked(bool);
    void bit5_clicked(bool);
    void bit4_clicked(bool);
    void bit3_clicked(bool);
    void bit2_clicked(bool);
    void bit1_clicked(bool);
    void bit0_clicked(bool);

    void hexValueChanged(QString);
    void decValueChanged(QString);
    void win_on_top(bool);
#if 0
    //void bit30_clicked(bool);
    //void bit0_clicked(bool);
    //BTN_CLICKED_FUNC_DECLARE(31)
    BTN_CLICKED_FUNC_DECLARE(30)
    BTN_CLICKED_FUNC_DECLARE(29)
    BTN_CLICKED_FUNC_DECLARE(28)
    BTN_CLICKED_FUNC_DECLARE(27)
    BTN_CLICKED_FUNC_DECLARE(26)
    BTN_CLICKED_FUNC_DECLARE(25)
    BTN_CLICKED_FUNC_DECLARE(24)
    BTN_CLICKED_FUNC_DECLARE(23)
    BTN_CLICKED_FUNC_DECLARE(22)
    BTN_CLICKED_FUNC_DECLARE(21)
    BTN_CLICKED_FUNC_DECLARE(20)
    BTN_CLICKED_FUNC_DECLARE(19)
    BTN_CLICKED_FUNC_DECLARE(18)
    BTN_CLICKED_FUNC_DECLARE(17)
    BTN_CLICKED_FUNC_DECLARE(16)
    BTN_CLICKED_FUNC_DECLARE(15)
    BTN_CLICKED_FUNC_DECLARE(14)
    BTN_CLICKED_FUNC_DECLARE(13)
    BTN_CLICKED_FUNC_DECLARE(12)
    BTN_CLICKED_FUNC_DECLARE(11)
    BTN_CLICKED_FUNC_DECLARE(10)
    BTN_CLICKED_FUNC_DECLARE(9)
    BTN_CLICKED_FUNC_DECLARE(8)
    BTN_CLICKED_FUNC_DECLARE(7)
    BTN_CLICKED_FUNC_DECLARE(6)
    BTN_CLICKED_FUNC_DECLARE(5)
    BTN_CLICKED_FUNC_DECLARE(4)
    BTN_CLICKED_FUNC_DECLARE(3)
    BTN_CLICKED_FUNC_DECLARE(2)
    BTN_CLICKED_FUNC_DECLARE(1)
    //BTN_CLICKED_FUNC_DECLARE(0)
    void bit0_clicked(bool);
#endif

private:
    Ui::MainWindow *ui;
    unsigned int m_value;
    QPushButton *m_btnarr[32];

};

#endif // MAINWINDOW_H
